#ifndef __EKF_ELFMOD_I_H__
#define __EKF_ELFMOD_I_H__

struct elf_mod_info_s
{
	 uintptr_t image;
	 uint32_t  image_size;
	 
	 uintptr_t ptr;
	 uintptr_t common_ptr;
	 uint32_t  common_size;
	 uintptr_t load_ptr;
	 uintptr_t unload_ptr;
};

int  elf_mod_init(void);

int  elf_mod_set_symbol(const char *name, void *ptr, uint32_t flags);
void elf_mod_touch_symbol(const char *name, void *ptr, uint32_t flags);
int  elf_mod_create_symbol(const char *name, void *ptr, uint32_t flags);
int  elf_mod_get_symbol(const char *name, void **ptr, uint32_t *flags);

int  elf_mod_load(const char *name, const char *image, uint32_t image_size, struct elf_mod_info_s *info, void *arg);
int  elf_mod_load_by_name(const char *name, struct elf_mod_info_s *info, void *arg);

#endif
